#include <stdio.h>
#include "linkedlist.h"

enum operation{
    init,sort,insert,delete,show,destroy
};

int main() {
    printf("请输入你要执行的单链表操作：\n");
    printf("\t0.初始化\n");
    printf("\t1.链表排序\n");
    printf("\t2.插入节点\n");
    printf("\t3.删除节点\n");
    printf("\t4.显示链表\n");
    printf("\t5.销毁链表\n");
    printf("\t-1.退出\n");
    pLinklist linklist = NULL;
    int option = 0;
    while(option!=-1){
        scanf("%d",&option);
        switch (option) {
            case init:{
                if(linklist!=NULL) destroyList(linklist);
                linklist = makeList();
                break;
            }
            case sort:{
                if(linklist) sortList(linklist);
                break;
            }
            case insert:{
                if(linklist){
                    printf("当前链表内容为：\n\t");
                    showList(linklist);
                    printf("请输入你要插入的数据和位置");
                    int data,position;
                    scanf("%d %d",&data,&position);
                    insertNode(linklist,data,position);
                }
                break;
            }
            case delete:{
                if(linklist){
                    printf("当前链表内容为：\n\t");
                    showList(linklist);
                    printf("请输入你要删除的数据所在位置");
                    int position;
                    scanf("%d",&position);
                    removeNode(linklist,position);
                }
                break;
            }
            case show:{
                showList(linklist);
                break;
            }
            case destroy:{
                if(linklist) destroyList(linklist);
                linklist = NULL;
                break;
            }
        }
    }
    if(linklist) destroyList(linklist);
    linklist = NULL;
}
